{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Anchor Boxes Analysis using K-Means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Section 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "import seaborn as sns\n",
    "%matplotlib inline\n",
    "import os\n",
    "import cv2\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### with Image resizing (correct way!)\n",
    "\n",
    "#### Read csv\n",
    "A csv was made from xml file using \"xml_to_csv.py\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Read the dataset\n",
    "data = pd.read_csv('train_labels.csv')\n",
    "\n",
    "#utility function to get width & height\n",
    "def change_to_wh (data):\n",
    "    data['w'] = data['xmax'] - data['xmin'] + 1\n",
    "    data['h'] = data['ymax'] - data['ymin'] + 1\n",
    "    return data\n",
    "\n",
    "min_dimension = 600\n",
    "max_dimension = 1024\n",
    "\n",
    "# function from Tensorflow Object Detection API to resize image\n",
    "def _compute_new_static_size(width, height, min_dimension, max_dimension):\n",
    "    orig_height = height\n",
    "    orig_width = width\n",
    "    orig_min_dim = min(orig_height, orig_width)\n",
    "  \n",
    "    # Calculates the larger of the possible sizes\n",
    "    large_scale_factor = min_dimension / float(orig_min_dim)\n",
    "      # Scaling orig_(height|width) by large_scale_factor will make the smaller\n",
    "      # dimension equal to min_dimension, save for floating point rounding errors.\n",
    "      # For reasonably-sized images, taking the nearest integer will reliably\n",
    "      # eliminate this error.\n",
    "    large_height = int(round(orig_height * large_scale_factor))\n",
    "    large_width = int(round(orig_width * large_scale_factor))\n",
    "    large_size = [large_height, large_width]\n",
    "    if max_dimension:\n",
    "    # Calculates the smaller of the possible sizes, use that if the larger\n",
    "    # is too big.\n",
    "        orig_max_dim = max(orig_height, orig_width)\n",
    "        small_scale_factor = max_dimension / float(orig_max_dim)\n",
    "    # Scaling orig_(height|width) by small_scale_factor will make the larger\n",
    "    # dimension equal to max_dimension, save for floating point rounding\n",
    "    # errors. For reasonably-sized images, taking the nearest integer will\n",
    "    # reliably eliminate this error.\n",
    "        small_height = int(round(orig_height * small_scale_factor))\n",
    "        small_width = int(round(orig_width * small_scale_factor))\n",
    "        small_size = [small_height, small_width]\n",
    "        new_size = large_size\n",
    "    if max(large_size) > max_dimension:\n",
    "        new_size = small_size\n",
    "    else:\n",
    "        new_size = large_size\n",
    "    \n",
    "    return new_size[1], new_size[0]\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>xmin</th>\n",
       "      <th>ymin</th>\n",
       "      <th>xmax</th>\n",
       "      <th>ymax</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>480.182163</td>\n",
       "      <td>508.952562</td>\n",
       "      <td>161.091082</td>\n",
       "      <td>169.635674</td>\n",
       "      <td>308.554080</td>\n",
       "      <td>357.265655</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>221.004063</td>\n",
       "      <td>22.680363</td>\n",
       "      <td>131.068885</td>\n",
       "      <td>87.936224</td>\n",
       "      <td>146.202463</td>\n",
       "      <td>92.654976</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>270.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>56.000000</td>\n",
       "      <td>93.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>69.000000</td>\n",
       "      <td>104.500000</td>\n",
       "      <td>206.500000</td>\n",
       "      <td>287.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>124.000000</td>\n",
       "      <td>172.000000</td>\n",
       "      <td>279.000000</td>\n",
       "      <td>372.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>208.000000</td>\n",
       "      <td>234.000000</td>\n",
       "      <td>346.500000</td>\n",
       "      <td>424.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>960.000000</td>\n",
       "      <td>540.000000</td>\n",
       "      <td>749.000000</td>\n",
       "      <td>443.000000</td>\n",
       "      <td>928.000000</td>\n",
       "      <td>540.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            width      height        xmin        ymin        xmax        ymax\n",
       "count  527.000000  527.000000  527.000000  527.000000  527.000000  527.000000\n",
       "mean   480.182163  508.952562  161.091082  169.635674  308.554080  357.265655\n",
       "std    221.004063   22.680363  131.068885   87.936224  146.202463   92.654976\n",
       "min    378.000000  270.000000    1.000000    1.000000   56.000000   93.000000\n",
       "25%    378.000000  504.000000   69.000000  104.500000  206.500000  287.500000\n",
       "50%    378.000000  504.000000  124.000000  172.000000  279.000000  372.000000\n",
       "75%    378.000000  504.000000  208.000000  234.000000  346.500000  424.500000\n",
       "max    960.000000  540.000000  749.000000  443.000000  928.000000  540.000000"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Initial Data\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "data = change_to_wh(data)\n",
    "data['new_w'], data['new_h'] = np.vectorize(_compute_new_static_size)(data['width'], \n",
    "                                                                      data['height'], min_dimension, max_dimension)\n",
    "data['b_w'] = data['new_w']*data['w']/data['width']\n",
    "data['b_h'] = data['new_h']*data['h']/data['height']\n",
    "data['b_ar'] = data['b_w']/data['b_h']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.JointGrid at 0x7f627ca71fd0>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Joint Plot of b_w and b_h\n",
    "sns.jointplot(x=\"b_w\", y=\"b_h\", data=data)\n",
    "sns.jointplot(x=\"b_w\", y=\"b_h\", data=data, kind='kde')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Calculate the base box size!\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def count_base_size(width, height, input_array=[64,96,128,196,212,256,512]):\n",
    "    result = {}\n",
    "    for ele in input_array:\n",
    "        result[str(ele)] = 0\n",
    "    result['rest'] = 0\n",
    "    \n",
    "    import itertools\n",
    "    for w,h in itertools.izip(width,height):\n",
    "        done = False\n",
    "        for inp in input_array:\n",
    "            if w <= inp and h <= inp:\n",
    "                result[str(inp)] += 1\n",
    "                done = True\n",
    "        if done == False:\n",
    "            result['rest'] += 1\n",
    "            \n",
    "    return result\n",
    "    \n",
    "D = count_base_size(data[\"b_w\"].tolist(), data[\"b_h\"].tolist())\n",
    "import collections\n",
    "OD = collections.OrderedDict(sorted(D.items()))\n",
    "plt.bar(range(len(OD)), OD.values(), align='center')  # python 2.x\n",
    "plt.xticks(range(len(OD)), OD.keys())  # in python 2.x\n",
    "\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OrderedDict([('128', 1), ('196', 41), ('212', 78), ('256', 212), ('512', 524), ('64', 0), ('96', 0), ('rest', 3)])\n"
     ]
    }
   ],
   "source": [
    "print OD"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>xmin</th>\n",
       "      <th>ymin</th>\n",
       "      <th>xmax</th>\n",
       "      <th>ymax</th>\n",
       "      <th>w</th>\n",
       "      <th>h</th>\n",
       "      <th>new_w</th>\n",
       "      <th>new_h</th>\n",
       "      <th>b_w</th>\n",
       "      <th>b_h</th>\n",
       "      <th>b_ar</th>\n",
       "      <th>b_area_scale</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>480.182163</td>\n",
       "      <td>508.952562</td>\n",
       "      <td>161.091082</td>\n",
       "      <td>169.635674</td>\n",
       "      <td>308.554080</td>\n",
       "      <td>357.265655</td>\n",
       "      <td>148.462998</td>\n",
       "      <td>188.629981</td>\n",
       "      <td>676.432638</td>\n",
       "      <td>759.620493</td>\n",
       "      <td>218.338942</td>\n",
       "      <td>277.058739</td>\n",
       "      <td>0.824470</td>\n",
       "      <td>0.647652</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>221.004063</td>\n",
       "      <td>22.680363</td>\n",
       "      <td>131.068885</td>\n",
       "      <td>87.936224</td>\n",
       "      <td>146.202463</td>\n",
       "      <td>92.654976</td>\n",
       "      <td>44.945532</td>\n",
       "      <td>57.973884</td>\n",
       "      <td>163.144093</td>\n",
       "      <td>86.189332</td>\n",
       "      <td>61.497894</td>\n",
       "      <td>78.634511</td>\n",
       "      <td>0.259569</td>\n",
       "      <td>0.184465</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>270.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>56.000000</td>\n",
       "      <td>93.000000</td>\n",
       "      <td>43.000000</td>\n",
       "      <td>60.000000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>576.000000</td>\n",
       "      <td>68.253968</td>\n",
       "      <td>95.238095</td>\n",
       "      <td>0.296137</td>\n",
       "      <td>0.281223</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>69.000000</td>\n",
       "      <td>104.500000</td>\n",
       "      <td>206.500000</td>\n",
       "      <td>287.500000</td>\n",
       "      <td>115.000000</td>\n",
       "      <td>143.500000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>177.955556</td>\n",
       "      <td>224.603175</td>\n",
       "      <td>0.724282</td>\n",
       "      <td>0.515099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>124.000000</td>\n",
       "      <td>172.000000</td>\n",
       "      <td>279.000000</td>\n",
       "      <td>372.000000</td>\n",
       "      <td>149.000000</td>\n",
       "      <td>188.000000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>210.133333</td>\n",
       "      <td>266.666667</td>\n",
       "      <td>0.773869</td>\n",
       "      <td>0.617138</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>208.000000</td>\n",
       "      <td>234.000000</td>\n",
       "      <td>346.500000</td>\n",
       "      <td>424.500000</td>\n",
       "      <td>176.000000</td>\n",
       "      <td>231.000000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>255.555556</td>\n",
       "      <td>323.015873</td>\n",
       "      <td>0.889113</td>\n",
       "      <td>0.773383</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>960.000000</td>\n",
       "      <td>540.000000</td>\n",
       "      <td>749.000000</td>\n",
       "      <td>443.000000</td>\n",
       "      <td>928.000000</td>\n",
       "      <td>540.000000</td>\n",
       "      <td>315.000000</td>\n",
       "      <td>352.000000</td>\n",
       "      <td>1024.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>441.269841</td>\n",
       "      <td>558.730159</td>\n",
       "      <td>2.822581</td>\n",
       "      <td>1.291457</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            width      height        xmin        ymin        xmax        ymax  \\\n",
       "count  527.000000  527.000000  527.000000  527.000000  527.000000  527.000000   \n",
       "mean   480.182163  508.952562  161.091082  169.635674  308.554080  357.265655   \n",
       "std    221.004063   22.680363  131.068885   87.936224  146.202463   92.654976   \n",
       "min    378.000000  270.000000    1.000000    1.000000   56.000000   93.000000   \n",
       "25%    378.000000  504.000000   69.000000  104.500000  206.500000  287.500000   \n",
       "50%    378.000000  504.000000  124.000000  172.000000  279.000000  372.000000   \n",
       "75%    378.000000  504.000000  208.000000  234.000000  346.500000  424.500000   \n",
       "max    960.000000  540.000000  749.000000  443.000000  928.000000  540.000000   \n",
       "\n",
       "                w           h        new_w       new_h         b_w  \\\n",
       "count  527.000000  527.000000   527.000000  527.000000  527.000000   \n",
       "mean   148.462998  188.629981   676.432638  759.620493  218.338942   \n",
       "std     44.945532   57.973884   163.144093   86.189332   61.497894   \n",
       "min     43.000000   60.000000   600.000000  576.000000   68.253968   \n",
       "25%    115.000000  143.500000   600.000000  800.000000  177.955556   \n",
       "50%    149.000000  188.000000   600.000000  800.000000  210.133333   \n",
       "75%    176.000000  231.000000   600.000000  800.000000  255.555556   \n",
       "max    315.000000  352.000000  1024.000000  800.000000  441.269841   \n",
       "\n",
       "              b_h        b_ar  b_area_scale  \n",
       "count  527.000000  527.000000    527.000000  \n",
       "mean   277.058739    0.824470      0.647652  \n",
       "std     78.634511    0.259569      0.184465  \n",
       "min     95.238095    0.296137      0.281223  \n",
       "25%    224.603175    0.724282      0.515099  \n",
       "50%    266.666667    0.773869      0.617138  \n",
       "75%    323.015873    0.889113      0.773383  \n",
       "max    558.730159    2.822581      1.291457  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Area Scale\n",
    "base_box = 256*256\n",
    "data['b_area_scale'] = (data['w']*data['h']/(base_box)).apply(np.sqrt)\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>width</th>\n",
       "      <th>height</th>\n",
       "      <th>xmin</th>\n",
       "      <th>ymin</th>\n",
       "      <th>xmax</th>\n",
       "      <th>ymax</th>\n",
       "      <th>w</th>\n",
       "      <th>h</th>\n",
       "      <th>new_w</th>\n",
       "      <th>new_h</th>\n",
       "      <th>b_w</th>\n",
       "      <th>b_h</th>\n",
       "      <th>b_ar</th>\n",
       "      <th>b_area_scale</th>\n",
       "      <th>tf_scale</th>\n",
       "      <th>tf_scale_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "      <td>527.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>480.182163</td>\n",
       "      <td>508.952562</td>\n",
       "      <td>161.091082</td>\n",
       "      <td>169.635674</td>\n",
       "      <td>308.554080</td>\n",
       "      <td>357.265655</td>\n",
       "      <td>148.462998</td>\n",
       "      <td>188.629981</td>\n",
       "      <td>676.432638</td>\n",
       "      <td>759.620493</td>\n",
       "      <td>218.338942</td>\n",
       "      <td>277.058739</td>\n",
       "      <td>0.824470</td>\n",
       "      <td>0.647652</td>\n",
       "      <td>0.951202</td>\n",
       "      <td>0.951202</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>221.004063</td>\n",
       "      <td>22.680363</td>\n",
       "      <td>131.068885</td>\n",
       "      <td>87.936224</td>\n",
       "      <td>146.202463</td>\n",
       "      <td>92.654976</td>\n",
       "      <td>44.945532</td>\n",
       "      <td>57.973884</td>\n",
       "      <td>163.144093</td>\n",
       "      <td>86.189332</td>\n",
       "      <td>61.497894</td>\n",
       "      <td>78.634511</td>\n",
       "      <td>0.259569</td>\n",
       "      <td>0.184465</td>\n",
       "      <td>0.241162</td>\n",
       "      <td>0.241162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>270.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>56.000000</td>\n",
       "      <td>93.000000</td>\n",
       "      <td>43.000000</td>\n",
       "      <td>60.000000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>576.000000</td>\n",
       "      <td>68.253968</td>\n",
       "      <td>95.238095</td>\n",
       "      <td>0.296137</td>\n",
       "      <td>0.281223</td>\n",
       "      <td>0.446386</td>\n",
       "      <td>0.446386</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>69.000000</td>\n",
       "      <td>104.500000</td>\n",
       "      <td>206.500000</td>\n",
       "      <td>287.500000</td>\n",
       "      <td>115.000000</td>\n",
       "      <td>143.500000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>177.955556</td>\n",
       "      <td>224.603175</td>\n",
       "      <td>0.724282</td>\n",
       "      <td>0.515099</td>\n",
       "      <td>0.805278</td>\n",
       "      <td>0.805278</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>124.000000</td>\n",
       "      <td>172.000000</td>\n",
       "      <td>279.000000</td>\n",
       "      <td>372.000000</td>\n",
       "      <td>149.000000</td>\n",
       "      <td>188.000000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>210.133333</td>\n",
       "      <td>266.666667</td>\n",
       "      <td>0.773869</td>\n",
       "      <td>0.617138</td>\n",
       "      <td>0.905067</td>\n",
       "      <td>0.905067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>378.000000</td>\n",
       "      <td>504.000000</td>\n",
       "      <td>208.000000</td>\n",
       "      <td>234.000000</td>\n",
       "      <td>346.500000</td>\n",
       "      <td>424.500000</td>\n",
       "      <td>176.000000</td>\n",
       "      <td>231.000000</td>\n",
       "      <td>600.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>255.555556</td>\n",
       "      <td>323.015873</td>\n",
       "      <td>0.889113</td>\n",
       "      <td>0.773383</td>\n",
       "      <td>1.081444</td>\n",
       "      <td>1.081444</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>960.000000</td>\n",
       "      <td>540.000000</td>\n",
       "      <td>749.000000</td>\n",
       "      <td>443.000000</td>\n",
       "      <td>928.000000</td>\n",
       "      <td>540.000000</td>\n",
       "      <td>315.000000</td>\n",
       "      <td>352.000000</td>\n",
       "      <td>1024.000000</td>\n",
       "      <td>800.000000</td>\n",
       "      <td>441.269841</td>\n",
       "      <td>558.730159</td>\n",
       "      <td>2.822581</td>\n",
       "      <td>1.291457</td>\n",
       "      <td>1.839335</td>\n",
       "      <td>1.839335</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            width      height        xmin        ymin        xmax        ymax  \\\n",
       "count  527.000000  527.000000  527.000000  527.000000  527.000000  527.000000   \n",
       "mean   480.182163  508.952562  161.091082  169.635674  308.554080  357.265655   \n",
       "std    221.004063   22.680363  131.068885   87.936224  146.202463   92.654976   \n",
       "min    378.000000  270.000000    1.000000    1.000000   56.000000   93.000000   \n",
       "25%    378.000000  504.000000   69.000000  104.500000  206.500000  287.500000   \n",
       "50%    378.000000  504.000000  124.000000  172.000000  279.000000  372.000000   \n",
       "75%    378.000000  504.000000  208.000000  234.000000  346.500000  424.500000   \n",
       "max    960.000000  540.000000  749.000000  443.000000  928.000000  540.000000   \n",
       "\n",
       "                w           h        new_w       new_h         b_w  \\\n",
       "count  527.000000  527.000000   527.000000  527.000000  527.000000   \n",
       "mean   148.462998  188.629981   676.432638  759.620493  218.338942   \n",
       "std     44.945532   57.973884   163.144093   86.189332   61.497894   \n",
       "min     43.000000   60.000000   600.000000  576.000000   68.253968   \n",
       "25%    115.000000  143.500000   600.000000  800.000000  177.955556   \n",
       "50%    149.000000  188.000000   600.000000  800.000000  210.133333   \n",
       "75%    176.000000  231.000000   600.000000  800.000000  255.555556   \n",
       "max    315.000000  352.000000  1024.000000  800.000000  441.269841   \n",
       "\n",
       "              b_h        b_ar  b_area_scale    tf_scale  tf_scale_2  \n",
       "count  527.000000  527.000000    527.000000  527.000000  527.000000  \n",
       "mean   277.058739    0.824470      0.647652    0.951202    0.951202  \n",
       "std     78.634511    0.259569      0.184465    0.241162    0.241162  \n",
       "min     95.238095    0.296137      0.281223    0.446386    0.446386  \n",
       "25%    224.603175    0.724282      0.515099    0.805278    0.805278  \n",
       "50%    266.666667    0.773869      0.617138    0.905067    0.905067  \n",
       "75%    323.015873    0.889113      0.773383    1.081444    1.081444  \n",
       "max    558.730159    2.822581      1.291457    1.839335    1.839335  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# TF scale\n",
    "base_anchor = 256\n",
    "data['tf_scale'] = data['b_h']*(data['b_ar']).apply(np.sqrt)/base_anchor\n",
    "data['tf_scale_2']= data['b_w']/((data['b_ar']).apply(np.sqrt)*base_anchor)\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index([u'filename', u'width', u'height', u'class', u'xmin', u'ymin', u'xmax',\n",
       "       u'ymax', u'w', u'h', u'new_w', u'new_h', u'b_w', u'b_h', u'b_ar',\n",
       "       u'b_area_scale', u'tf_scale', u'tf_scale_2'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Clusterring\n",
    "\n",
    "### Eucledian Distance Based Clusterring\n",
    "\n",
    "### One by One (AR and Scale Separately)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f6270e5d290>]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl4lvWd7/H3N/tKEkhYQwhrXEAWo3XDQVHR0XFprUpHu5x26KqgVmfanut0nNNlRq2ire0Ul2qnjrserUuRcQOtaEMAkVV2whogCUsSkpDv+SOPCEjI9iT3s3xe1+WV5H7u5P7o5fXJL7/nd98/c3dERCT6JQQdQEREwkOFLiISI1ToIiIxQoUuIhIjVOgiIjFChS4iEiNU6CIiMUKFLiISI1ToIiIxIqknL5afn+/FxcU9eUkRkai3YMGCne5e0NZ5PVroxcXFlJWV9eQlRUSinpltaM95bU65mNkjZrbDzD4+6viNZrbCzJaa2Z2dDSoiIuHRnjn0R4GLDz9gZucBVwBj3f1k4O7wRxMRkY5os9DdfS6w+6jD3wX+3d0PhM7Z0Q3ZRESkAzq7ymUUMNHMPjCzd8zstHCGEhGRjuvsm6JJQG/gDOA04GkzG+bHeLi6mU0DpgEUFRV1NqeIiLShsyP0CuB5b/Eh0AzkH+tEd5/l7qXuXlpQ0OaqGxER6aTOFvr/A84DMLNRQAqwM1yhRESk49qzbPEJ4H2gxMwqzOybwCPAsNBSxieBrx1ruiVc5q/dxW/fXt1dP15EJCa0OYfu7lNbeen6MGdp1RvLt/Pwu+u48MR+jOyX3VOXFRGJKlHxLJfvThpBRkoSv3p9VdBRREQiVlQUeu/MFL41cSh/WbqNxZuqg44jIhKRoqLQAb41cRi9M1O4a/bKoKOIiESkqCn0rNQkvjdpOO+u3slfV2tBjYjI0aKm0AGuP2MIA3LSuHP2SrpxUY2ISFSKqkJPS05k+uSRLNpUzf8s1+NjREQOF1WFDnD1qYUMzc/k7tkrOdisUbqIyKeirtCTEhO45cJRrNy+l5cWbw46johIxIi6Qge4dMwAThrQi3vnfEJDU3PQcUREIkJUFnpCgnHblBI27q7lqbJNQccREYkIUVnoAJNKCjitOI9fv/EJdQ0Hg44jIhK4qC10M+O2KSewY+8BHnt/fdBxREQCF7WFDnD60N5MKingd2+voaauMeg4IiKBiupCB/jhRSXU1DXy0Ly1QUcREQlU1Bf66EE5XHrKAB5+dx2Vew8EHUdEJDBRX+gAt144igNNzTzwljbBEJH4FROFPqwgi6snFPLfH2ykoqo26DgiIoGIiUIHmH7BSDC4738+CTqKiEgg2rOn6CNmtiO0f+jRr91qZm5m+d0Tr/0G5qZzwxlDeK68gtU79gUdR0Skx7VnhP4ocPHRB81sMHARsDHMmTrte5OGk56cyD1ztAmGiMSfNgvd3ecCu4/x0r3A7UDEPPKwT1Yq35w4jFeXbGNJRU3QcUREelSn5tDN7Apgs7svbse508yszMzKKisrO3O5DvmniUPJzUjmrtc1SheR+NLhQjezDODHwP9pz/nuPsvdS929tKCgoKOX67DstGS+N2k4c1dVMn/trm6/nohIpOjMCH04MBRYbGbrgUKg3Mz6hzNYV3z1zGL69UrlLm1VJyJxpMOF7u5L3L2vuxe7ezFQAUxw921hT9dJacmJ3DR5JAs2VPHmCm1VJyLxoT3LFp8A3gdKzKzCzL7Z/bG67prSwRT3yeCu2Stp1lZ1IhIH2rPKZaq7D3D3ZHcvdPeHj3q92N13dl/EzklOTODmC0exYtte/vzRlqDjiIh0u5i5U/RY/uGUgZzQP5t75qyi8aC2qhOR2BbThf7pVnUbdtXytLaqE5EYF9OFDnD+CX2ZUJTL/W98Qn2jtqoTkdgV84VuZtx+8Qls33OAP76/Pug4IiLdJuYLHeCMYX04d1QBv317DXvrtVWdiMSmuCh0gNsuKqG6tpEH560LOoqISLeIm0IfU5jD34/pz8Pz1rJrn7aqE5HYEzeFDnDLhSXUNR7kt2+vCTqKiEjYxVWhj+ibxZcmFPJf8zewpbou6DgiImEVV4UOoa3qHO5/Q1vViUhsibtCL8zL4CtfKOKZBRWsrdRWdSISO+Ku0AF+cP4IUpMS+NWcVUFHEREJm7gs9PysVL55zlBe+WgrH2/WVnUiEhvistABvjVxGDnpydytrepEJEbEbaHnpCfz3UnDeXtlJR+uO9Ye2CIi0SVuCx3ga2cW0zc7lbtmr9BWdSIS9eK60NNTErlx8kj+tr6Kt1dWBh1HRKRL2rMF3SNmtsPMPj7s2F1mtsLMPjKzF8wst3tjdp9rSwdT1Ftb1YlI9GvPCP1R4OKjjs0BRrv7KcAq4EdhztVjUpISuPnCkSzbuodXlmwNOo6ISKe1Z0/RucDuo4697u5NoS/nA4XdkK3HXD52ECX9tFWdiES3cMyh/y/gtTD8nMAkJhg/nFLCup37eW5BRdBxREQ6pUuFbmY/AZqAx49zzjQzKzOzssrKyH3j8YIT+zK+KJf7tFWdiESpThe6mX0duAz4Rz/Omj93n+Xupe5eWlBQ0NnLdTuzlg2lt9bU86f5G4KOIyLSYZ0qdDO7GLgduNzda8MbKThnDc/nnBH5/PbtNew70NT2N4iIRJD2LFt8AngfKDGzCjP7JvAbIBuYY2aLzOw/uzlnj7ltSgm79zfw0Ly1QUcREemQpLZOcPepxzj8cDdkiQhjB+dy8cn9eWjeOr56ZjG9M1OCjiQi0i5xfadoa269aBS1DU387u3VQUcREWk3FfoxjOyXzVXjC3ns/Q1srdFWdSISHVTorZhxwUjcnfvf0ChdRKKDCr0Vg3tn8JXTi3i6bBPrdu4POo6ISJtU6Mfx/fNHkJKYwL3aqk5EooAK/Tj6ZqfxjbOLeWnxFpZt2RN0HBGR41Kht+Hb5w6nV1qStqoTkYinQm9DTkYy35k0nDdX7KBsvbaqE5HIpUJvh6+fVUx+Vip3zl6prepEJGKp0NshIyWJmyaP4MN1u5n7yc6g44iIHJMKvZ2uO62Iwrx07pq9QlvViUhEUqG3U0pSAjdfMIqPN+/htY+3BR1HRORzVOgdcOX4QYzsm8Wv5qykSVvViUiEUaF3QGKCcetFJayt3M/z5ZuDjiMicgQVegdNObkfYwfnMvN/VnGgSVvViUjkUKF3kJlx+5QSttTU8/j8jUHHERE5RIXeCWePyOes4X144K3V2qpORCKGCr2TbptSwq79Dfzh3XVBRxERAdq3p+gjZrbDzD4+7FhvM5tjZp+EPuZ1b8zIM74ojwtP6sesuWup2t8QdBwRkXaN0B8FLj7q2L8Ab7j7SOCN0Ndx54cXlbCvoYn/fGdN0FFERNoudHefCxz9VKorgMdCnz8GXBnmXFGhpH82V40bxKN/Xc/2PfVBxxGRONfZOfR+7r419Pk2oF9rJ5rZNDMrM7OyysrKTl4ucs24YBQHm5373/gk6CgiEue6/Kaotzx+sNWHm7j7LHcvdffSgoKCrl4u4hT1yWDq6UU89bdNbNilrepEJDidLfTtZjYAIPRxR/giRZ8bzx9BUqJpqzoRCVRnC/0l4Guhz78GvBieONGpb680vn7WUF5cvIUV27RVnYgEoz3LFp8A3gdKzKzCzL4J/DtwoZl9AlwQ+jqufefvhpGVmsTdszVKF5FgJLV1grtPbeWlyWHOEtVyM1L49rnDuPv1VSzYUMWpQ+Juab6IBEx3iobRN84eSn5WCnfNXqGt6kSkx6nQwygzNYkfnDeC+Wt38/bK2FuiKSKRTYUeZlO/UMTIvln883MfsVuPBBCRHqRCD7PUpERmXjeOqtoGfvT8R5p6EZEeo0LvBicPzOG2KSXMXrqdp8s2BR1HROKECr2bfOucYZw1vA93/HkZ63bqDlIR6X4q9G6SkGD86pqxJCcmMOPJhTRqU2kR6WYq9G40ICedX35xDIsravTwLhHpdir0bvb3YwZw9amFPPDWav62/uinEIuIhI8KvQf86+UnU5iXwc1PLWJPfWPQcUQkRqnQe0BWahL3XjuOrTX1/PTFpUHHEZEYpULvIacOyePG80fwwsLNvLR4S9BxRCQGqdB70A/OG8GEolx+8sISNlfXBR1HRGKMCr0HJSUmMPPa8TQ3O7c8tYiDzbqLVETCR4Xew4r6ZHDHFaP5YN1ufj93TdBxRCSGqNAD8KUJg7h0zADueX0VSypqgo4jIjFChR4AM+PnV40mPyuV6U8tpK7hYNCRRCQGdKnQzexmM1tqZh+b2RNmlhauYLEuNyOFe64Zy7qd+/nZK8uCjiMiMaDThW5mg4CbgFJ3Hw0kAteFK1g8OGtEPtMmDuPxDzYyZ9n2oOOISJTr6pRLEpBuZklABqAF1h10y0WjOGlAL/75uY/Ysbc+6DgiEsU6Xejuvhm4G9gIbAVq3P31cAWLF6lJidw/dRz7DzRx2zPaEENEOq8rUy55wBXAUGAgkGlm1x/jvGlmVmZmZZWV2mfzWEb0zeYnl57IO6sq+eP7G4KOIyJRqitTLhcA69y90t0bgeeBs44+yd1nuXupu5cWFBR04XKx7YYzhnBeSQE/f3U5q7bvDTqOiEShrhT6RuAMM8swMwMmA8vDEyv+mBl3Xj2W7NQkbnpiIQeatJRRRDqmK3PoHwDPAuXAktDPmhWmXHGpIDuVO68+hRXb9nL37JVBxxGRKNOlVS7u/lN3P8HdR7v7De5+IFzB4tXkE/tx/RlFPDhvHe9+sjPoOCISRXSnaAT6yd+fxPCCTG59ZhFV+xuCjiMiUUKFHoHSUxK577rx7N7fwI9fWKKljCLSLir0CDV6UA63XlTCax9v45kFFUHHEZEooEKPYP80cRhnDOvNHS8tZf3O/UHHEZEIp0KPYIkJxj3XjCMxwZjx1CIaDzYHHUlEIpgKPcINzE3nF18cw6JN1fz6zdVBxxGRCKZCjwKXnTKQL04YxG/e/IQFG3YHHUdEIpQKPUrccfnJDMpLZ8ZTi9hb3xh0HBGJQCr0KJGdlsy914xjc1UdP31padBxRCQCqdCjSGlxb35w/kieL9/Myx/p0fMiciQVepS56fwRjBucy4+fX8KW6rqg44hIBFGhR5mkxARmXjuOpmbnlqcXcbBZd5GKSAsVehQqzs/kX//hZOav3c2D89YGHUdEIoQKPUp9ubSQS0b351evr+TjzTVBxxGRCKBCj1Jmxi+uGkPvzBSmP7mQugZtiCES71ToUSwvM4VffXkcayr384tXtVmUSLxToUe5c0bm861zhvJf8zfwxvLtQccRkQB1qdDNLNfMnjWzFWa23MzODFcwab/bLi7hhP7Z3P7sR1Tu1aZRIvGqqyP0+4C/uPsJwFi0SXQgUpMSuX/qePYdaOL2ZxdrQwyRONXpQjezHOBc4GEAd29w9+pwBZOOGdUvmx9dcgJvrazkT/M3BB1HRALQlRH6UKAS+IOZLTSzh8wsM0y5pBO+dlYxfzeqgJ+9spzVO/YGHUdEelhXCj0JmAD8zt3HA/uBfzn6JDObZmZlZlZWWVnZhctJW8yMu758CpmpSdz0xCIONGkpo0g86UqhVwAV7v5B6OtnaSn4I7j7LHcvdffSgoKCLlxO2qNvdhp3fukUlm3dwz2vrwo6joj0oE4XurtvAzaZWUno0GRgWVhSSZdccFI/vvKFImbNW8tf1+wMOo6I9JCurnK5EXjczD4CxgG/6HokCYf/femJDO2TyS1PLaa6tiHoOCLSA7pU6O6+KDSdcoq7X+nuVeEKJl2TkZLEfdeNZ+e+A/zkhY+1lFEkDuhO0Rg2pjCHWy4axStLtvJc+eag44hIN1Ohx7hvnzuc04f25qcvfszGXbVBxxGRbqRCj3GJCca9144jIcGY8dRCmg42Bx1JRLqJCj0ODMpN5+dXjaF8YzW/eWt10HFEpJuo0OPE5WMHctX4Qfz6zdWUb9R71yKxSIUeR+644mT690pjxpOL2HegKeg4IhJmKvQ40istmZnXjaOiqpY7XloadBwRCTMVepw5rbg33z9vBM8sqODVJVuDjiMiYaRCj0M3TR7J2MG5/Oj5JWytqQs6joiEiQo9DiUnJjDz2nE0Hmzmh88sprlZd5GKxAIVepwamp/J/7nsJN5bvYvfz10bdBwRCQMVehy79rTBXDK6P//xlxXc9sxirXwRiXIq9DhmZtw/dTw3nj+C58oruOS+uZSt3x10LBHpJBV6nEtOTODWi0p45jtnYhjX/P597pq9goYmPSJAJNqo0AWAU4f05tXpE/nyqYN54K01fPF372lfUpEoo0KXQ7JSk/iPq0/h9zecypbqei69/10efW+dnqUuEiVU6PI5U07uz19mTOSs4X341z8v46uPfMj2PfVBxxKRNqjQ5Zj6ZqfxyNdP42dXjqZsfRVTZs7VnaUiEa7LhW5miWa20MxeDkcgiRxmxvVnDOGVm85hSO8Mvvd4Obc8vYg99Y1BRxORYwjHCH06sDwMP0ci1LCCLJ797lncNHkkLy7awiUz5/HB2l1BxxKRo3Sp0M2sELgUeCg8cSRSJScmcMuFo3jmO2eSlGhc9+B8fvnacg40HQw6moiEdHWEPhO4HWh10bKZTTOzMjMrq6ys7OLlJGgTivJ49aaJXHdaEb9/Zy1XPvBXVm3X8kaRSNDpQjezy4Ad7r7geOe5+yx3L3X30oKCgs5eTiJIZmoSv/ziGB76aik79tRz2a/f5eF31+khXyIB68oI/WzgcjNbDzwJnG9mfwpLKokKF5zUj9k3n8u5I/P5vy8v44ZHPtDjeEUC1OlCd/cfuXuhuxcD1wFvuvv1YUsmUSE/K5UHv1rKL784hoUbq5ly71z+vHhL0LFE4pLWoUuXmRlTTy/i1ZsmMqwgixufWMj0JxdSU6fljSI9KSyF7u5vu/tl4fhZEr2K8zN59jtncvMFo3j5o61cMnMuf12zM+hYInFDI3QJq6TEBKZfMJLnvnsWqcmJ/ONDH/DzV5ZpeaNID1ChS7cYNziXV246h3/8QhEPzlvHFb95jxXb9gQdSySmqdCl22SkJPGzK8fwh6+fxs59DVz+6/d4cO5aLW8U6SYqdOl2553Ql9kzJjKppICfv7qcrzw0n83VWt4oEm4qdOkRfbJS+f0Np3Lnl05hSUUNF8+cy4uLNgcdSySmqNClx5gZ15w2mNemn8uoftlMf3IRNz6xkJpaLW8UCQcVuvS4oj4ZPDXtDH540SheW7KVKTPn8t5qLW8U6SoVugQiKTGBH5w/khe+dzaZqS3LG//tz8uob9TyRpHOUqFLoMYU5vDyjRP56plDeOS9dfzDr99l6ZaaoGOJRCUVugQuPSWRf7tiNI9+4zSq6xq58oH3+M931nBQyxtFOkSFLhFjUklfZs84l8kn9OPfX1vB1Afns2l3bdCxRKKGCl0iSu/MFH53/QTu/vJYlm3ZwyX3zeO5BRW4a7Qu0hYVukQcM+PqUwt5bfpEThyQza3PLOb7/11O1f6GoKOJRDQVukSswb0zeHLamdx+cQlzlm1nysy5vLNK2xiKtCYp6AAix5OYYHxv0gjOHVnAjKcW8bVHPmRYfibji/I4dUgeE4bkMrJvNokJFnRUkcBZT85NlpaWellZWY9dT2JLfeNB/jR/A/PX7qZ8YxW7Q1MwWalJjC/KPVTy4wbnkpOeHHBakfAxswXuXtrmeSp0iUbuzoZdtSzYUEX5xioWbKhi1fa9NDuYwci+WUwoymPCkDwmFOUxLD+TBI3iJUp1e6Gb2WDgj0A/wIFZ7n7f8b5HhS7dad+BJhZvqj5U8gs3Vh/aBi8nPZkJRblMCI3ixw7OJTNVM44SHdpb6F35P7oJuNXdy80sG1hgZnPcfVkXfqZIp2WlJnH2iHzOHpEPQHOzs3bnPso3fFbyb61seVM1weCE/r2YMOSzki/qnYGZRvESvcI25WJmLwK/cfc5rZ2jEboEraa2kYWbqijfWE35hioWbapm34EmAPKzUhhflHeo4E8pzCEtOTHgxCI9M0I//GLFwHjgg3D8PJHukpORzKSSvkwq6QvAwWZn1fa9lG+sonxDNeUbq5izbDsASQnGyQN7tZT8kJaSH5iTplG8RKwuj9DNLAt4B/i5uz9/jNenAdMAioqKTt2wYUOXrifS3XbtO8DCjS3lXr6xisWbaqgLPQWyX6/UluWSoZI/eWAvUpM0ipfu1SOrXMwsGXgZmO3u97R1vqZcJBo1HWxmxba9h+bhyzdWsWl3yxZ6KYkJjB7U61DJnzokj7690gJOLLGmJ1a5GPAYsNvdZ7Tne1ToEit27K0/NEVTvqGKjzbX0NDUDMCg3PRQwecyelAOg3tnUJCVqmWT0mk9UejnAPOAJUBz6PCP3f3V1r5HhS6xqqGpmaVbag692Vq+sYqtNfWHXk9JSqAwL53BeRkM7p1OYV7Goc8H52WQm5GsuXlplW4sEgnYluo6Vm3fy6aqOip217KpqpZNu+vYVFVL9VH7qGalJlGYFyr63p8W/2fln6U183GtR1e5iMjnDcxNZ2Bu+jFf21vfSEVVHZt217Ip9LGiqpZNu2v565qd1DYcuRVfXkZyS8HnZVAYKvzCvHQG985gUG66llcKoEIXCUR2WjInDkjmxAG9Pveau1NV2xgq+89G9RVVdSzfuoc5y7bTcLD5iO/p1yv10Kj+06mdT4t/QE4aSYl6sGo8UKGLRBgzo3dmCr0zUxg7OPdzrzc3Ozv2HgiVfe1hI/1aPly3mxcX1XH47n2JCcaAnLQj5uwPn87RG7axQ4UuEmUSEoz+OWn0z0njtOLen3u98WAzW6vrQ6P6z0b4m3bX8tbKSir3Hjji/NSkBAaFRvUDc9MYkJPOgJzQx9w0Buakk56iKZ1ooEIXiTHJiQkU9cmgqE/GMV+vbzzYMqqvqg29WVt3aKS/dEsNO/d9fmeonPRkBuSkMTD307L/rPA//QWgefzgqdBF4kxaciIj+mYxom/WMV+vbzzI9j31bK2pZ2tNHVuq69l22OcLN1ZRddQqHWjZD7Z/r7TPRvm5nxX/wJx0+uWk6q7abqZCF5EjpCUnMqRPJkP6ZLZ6Tn3jwZbCr677rPhrWoq/oqqOv62vOvTo4sPlZ6UwICed/jlpDMxJY0DuYdM7OWn065VGSpLewO0sFbqIdFhaciJD8zMZmt966dc2NIVKv54tNXVsra5n256WUf6GXfuZv3YXe+ubjvgeM8jPSm0p+0+L//B5/dx0+mWnatVOK1ToItItMlKSGF6QxfCCY0/tQMumJEeM8qtbPm6tqWd15T7mfVLJ/qPW5CcYFGSn0jc7jdyMZHqlJ5ObnkxOejK5Gcnkpqe0HMs48lhackLM342rQheRwGSlJjGyXzYj+2Uf83V3Z++BpiNH+aHpnZ37DlBT18jmqjqq6xqpqWvkYHPrd76nJCaQ82nJh4q+5ZdBymfF/7lfECn0SkuKmr8IVOgiErHMjF5pyfTqn0xJ/2OX/qfcnX0Hmqipa6S6tpE9dY1Uhz6vqWukuq6h5Vhtyz9bqutZvnUvNXWNhzY5aU12atJnvwyO9VfA0b8gMlqOZaQk9uhfBSp0EYkJZkZ2WjLZackU5nXsexsPNh/xC2BP6BdATe3Rx1p+Oayo2UNNXRM1dQ00Hmz9r4KkBDtU+r+4agxfGNani/+Wx6dCF5G4l5yYQJ+sVPpkpXbo+9yd2oaDh/4qqKlrpKau4bC/CkLHahvplZ7cTek/o0IXEekkMyMzNYnM1KRWH8TWk6Jjpl9ERNqkQhcRiREqdBGRGKFCFxGJEV0qdDO72MxWmtlqM/uXcIUSEZGO63Shm1ki8ABwCXASMNXMTgpXMBER6ZiujNBPB1a7+1p3bwCeBK4ITywREemorhT6IGDTYV9XhI4dwcymmVmZmZVVVlZ24XIiInI83X5jkbvPAmYBmFmlmW3o5I/KB3aGLVj3i6a80ZQVoitvNGWF6MobTVmha3mHtOekrhT6ZmDwYV8Xho61yt0LOnsxMytz99LOfn9Pi6a80ZQVoitvNGWF6MobTVmhZ/J2Zcrlb8BIMxtqZinAdcBL4YklIiId1ekRurs3mdkPgNlAIvCIuy8NWzIREemQLs2hu/urwKthytKWWT10nXCJprzRlBWiK280ZYXoyhtNWaEH8pp768/yFRGR6KFb/0VEYkRUFHo0PWLAzB4xsx1m9nHQWdpiZoPN7C0zW2ZmS81setCZWmNmaWb2oZktDmW9I+hMbTGzRDNbaGYvB52lLWa23syWmNkiMysLOk9bzCzXzJ41sxVmttzMzgw607GYWUnov+mn/+wxsxnddr1In3IJPWJgFXAhLTcv/Q2Y6u7LAg3WCjM7F9gH/NHdRwed53jMbAAwwN3LzSwbWABcGYn/ba1lY8ZMd99nZsnAu8B0d58fcLRWmdktQCnQy90vCzrP8ZjZeqDU3aNiXbeZPQbMc/eHQqvsMty9OuhcxxPqss3AF9y9s/fjHFc0jNCj6hED7j4X2B10jvZw963uXh76fC+wnGPc7RsJvMW+0JfJoX8idjRiZoXApcBDQWeJNWaWA5wLPAzg7g2RXuYhk4E13VXmEB2F3q5HDEjXmFkxMB74INgkrQtNYSwCdgBz3D1iswIzgduB5qCDtJMDr5vZAjObFnSYNgwFKoE/hKa0HjKzzKBDtcN1wBPdeYFoKHTpZmaWBTwHzHD3PUHnaY27H3T3cbTclXy6mUXklJaZXQbscPcFQWfpgHPcfQItT0/9fmjqMFIlAROA37n7eGA/EOnvraUAlwPPdOd1oqHQO/yIAWm/0Hz0c8Dj7v580HnaI/Tn9VvAxUFnacXZwOWheekngfPN7E/BRjo+d98c+rgDeIGWqc5IVQFUHPYX2rO0FHwkuwQod/ft3XmRaCh0PWKgm4TeaHwYWO7u9wSd53jMrMDMckOfp9PyJvmKYFMdm7v/yN0L3b2Ylv9f33T36wOO1Sozywy9KU5o6uIiIGJXabn7NmCTmZWEDk0GIu6N/KNMpZunW6AHnrbYVdH2iAEzewKYBOSbWQXwU3d/ONhUrTobuAHInIGfAAAAfklEQVRYEpqbBvhx6A7gSDMAeCy0UiABeNrdI345YJToB7zQ8vudJOC/3f0vwUZq043A46FB3lrgGwHnaVXol+SFwLe7/VqRvmxRRETaJxqmXEREpB1U6CIiMUKFLiISI1ToIiIxQoUuIhIjVOgiIjFChS4iEiNU6CIiMeL/A86o3Y+k77VbAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Aspect Ratio\n",
    "X = data.iloc[:,14].values\n",
    "X = X.reshape(-1,1)\n",
    "\n",
    "\n",
    "loss = []\n",
    "from sklearn.cluster import KMeans\n",
    "for i in range(2,10):\n",
    "    K = KMeans(i, random_state=1)\n",
    "    labels = K.fit(X)\n",
    "    loss.append(labels.inertia_)\n",
    "\n",
    "plt.plot(loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "b_ar\n",
      "Aspect Ratios:\n",
      "\n",
      "[[0.78240442]\n",
      " [1.2019433 ]\n",
      " [0.44523506]\n",
      " [2.76931501]]\n"
     ]
    }
   ],
   "source": [
    "print data.columns[14]\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "K = KMeans(4, random_state=1)\n",
    "labels = K.fit(X)\n",
    "print \"Aspect Ratios:\\n\"\n",
    "print labels.cluster_centers_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9999999999999998"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Correlation Check (ignore!)\n",
    "\n",
    "x = data['w']/data['h']\n",
    "\n",
    "data['b_ar'].corr(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f626d9fbd90>]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# TF_Scale Clusterring\n",
    "X = data.iloc[:,16].values\n",
    "X = X.reshape(-1,1)\n",
    "\n",
    "\n",
    "loss = []\n",
    "from sklearn.cluster import KMeans\n",
    "for i in range(2,10):\n",
    "    K = KMeans(i, random_state=1)\n",
    "    labels = K.fit(X)\n",
    "    loss.append(labels.inertia_)\n",
    "\n",
    "plt.plot(loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f626d9634d0>]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot of different scales\n",
    "plt.plot(X, 'o')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tf_scale\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[0.87812255],\n",
       "       [1.5433253 ],\n",
       "       [0.65048555],\n",
       "       [1.1442309 ]])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print data.columns[16]\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "K = KMeans(4, random_state=1)\n",
    "labels = K.fit(X)\n",
    "labels.cluster_centers_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f626d95aa90>]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# area_Scale\n",
    "X = data.iloc[:,15].values\n",
    "X = X.reshape(-1,1)\n",
    "\n",
    "\n",
    "loss = []\n",
    "from sklearn.cluster import KMeans\n",
    "for i in range(2,10):\n",
    "    K = KMeans(i, random_state=1)\n",
    "    labels = K.fit(X)\n",
    "    loss.append(labels.inertia_)\n",
    "\n",
    "plt.plot(loss)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "b_area_scale\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[1.00323368],\n",
       "       [0.57879228],\n",
       "       [0.77016754],\n",
       "       [0.42441227]])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print data.columns[15]\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "K = KMeans(4, random_state=1)\n",
    "labels = K.fit(X)\n",
    "labels.cluster_centers_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Clusterring using both width & height"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index([u'b_w', u'b_h'], dtype='object')\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print data.columns[12:14]\n",
    "X = data.as_matrix(columns=data.columns[12:14])\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "K = KMeans(5, random_state=0)\n",
    "labels = K.fit(X)\n",
    "plt.scatter(X[:, 0], X[:, 1], c=labels.labels_,\n",
    "            s=50, cmap='viridis');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Aspect Ratios: \n",
      "[0.44050928 0.86447933 0.81207427 0.86933814 0.76808116]\n",
      "Scales: \n",
      "[0.8826436  0.89024631 1.15471327 0.66806676 1.5566834 ]\n"
     ]
    }
   ],
   "source": [
    "out = labels.cluster_centers_\n",
    "\n",
    "ar = out[:,0]/out[:,1]\n",
    "scale = out[:,1]*np.sqrt(ar)/256\n",
    "\n",
    "print \"Aspect Ratios: \"\n",
    "print ar\n",
    "\n",
    "print \"Scales: \"\n",
    "print scale"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### IOU based clusterring"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "#utility functions for K-means\n",
    "import numpy as np\n",
    "\n",
    "\n",
    "def iou(box, clusters):\n",
    "    \"\"\"\n",
    "    Calculates the Intersection over Union (IoU) between a box and k clusters.\n",
    "    :param box: tuple or array, shifted to the origin (i. e. width and height)\n",
    "    :param clusters: numpy array of shape (k, 2) where k is the number of clusters\n",
    "    :return: numpy array of shape (k, 0) where k is the number of clusters\n",
    "    \"\"\"\n",
    "    x = np.minimum(clusters[:, 0], box[0])\n",
    "    y = np.minimum(clusters[:, 1], box[1])\n",
    "    if np.count_nonzero(x == 0) > 0 or np.count_nonzero(y == 0) > 0:\n",
    "        raise ValueError(\"Box has no area\")\n",
    "\n",
    "    intersection = x * y\n",
    "    box_area = box[0] * box[1]\n",
    "    cluster_area = clusters[:, 0] * clusters[:, 1]\n",
    "\n",
    "    iou_ = intersection / (box_area + cluster_area - intersection)\n",
    "\n",
    "    return iou_\n",
    "\n",
    "\n",
    "def avg_iou(boxes, clusters):\n",
    "    \"\"\"\n",
    "    Calculates the average Intersection over Union (IoU) between a numpy array of boxes and k clusters.\n",
    "    :param boxes: numpy array of shape (r, 2), where r is the number of rows\n",
    "    :param clusters: numpy array of shape (k, 2) where k is the number of clusters\n",
    "    :return: average IoU as a single float\n",
    "    \"\"\"\n",
    "    return np.mean([np.max(iou(boxes[i], clusters)) for i in range(boxes.shape[0])])\n",
    "\n",
    "\n",
    "def translate_boxes(boxes):\n",
    "    \"\"\"\n",
    "    Translates all the boxes to the origin.\n",
    "    :param boxes: numpy array of shape (r, 4)\n",
    "    :return: numpy array of shape (r, 2)\n",
    "    \"\"\"\n",
    "    new_boxes = boxes.copy()\n",
    "    for row in range(new_boxes.shape[0]):\n",
    "        new_boxes[row][2] = np.abs(new_boxes[row][2] - new_boxes[row][0])\n",
    "        new_boxes[row][3] = np.abs(new_boxes[row][3] - new_boxes[row][1])\n",
    "    return np.delete(new_boxes, [0, 1], axis=1)\n",
    "\n",
    "\n",
    "def kmeans(boxes, k, dist=np.median):\n",
    "    \"\"\"\n",
    "    Calculates k-means clustering with the Intersection over Union (IoU) metric.\n",
    "    :param boxes: numpy array of shape (r, 2), where r is the number of rows\n",
    "    :param k: number of clusters\n",
    "    :param dist: distance function\n",
    "    :return: numpy array of shape (k, 2)\n",
    "    \"\"\"\n",
    "    rows = boxes.shape[0]\n",
    "\n",
    "    distances = np.empty((rows, k))\n",
    "    last_clusters = np.zeros((rows,))\n",
    "\n",
    "    np.random.seed()\n",
    "\n",
    "    # the Forgy method will fail if the whole array contains the same rows\n",
    "    clusters = boxes[np.random.choice(rows, k, replace=False)]\n",
    "\n",
    "    while True:\n",
    "        for row in range(rows):\n",
    "            distances[row] = 1 - iou(boxes[row], clusters)\n",
    "\n",
    "        nearest_clusters = np.argmin(distances, axis=1)\n",
    "\n",
    "        if (last_clusters == nearest_clusters).all():\n",
    "            break\n",
    "\n",
    "        for cluster in range(k):\n",
    "            clusters[cluster] = dist(boxes[nearest_clusters == cluster], axis=0)\n",
    "\n",
    "        last_clusters = nearest_clusters\n",
    "\n",
    "    return clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index([u'b_w', u'b_h'], dtype='object')\n",
      "[[136.50793651 201.58730159]\n",
      " [317.46031746 390.47619048]\n",
      " [197.33333333 238.0952381 ]\n",
      " [241.26984127 310.4       ]]\n"
     ]
    }
   ],
   "source": [
    "print data.columns[12:14]\n",
    "X = data.as_matrix(columns=data.columns[12:14])\n",
    "\n",
    "# Cluster with 4 centers\n",
    "cl = kmeans(X, 4)\n",
    "print cl"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.67716535 0.81300813 0.8288     0.77728686]\n",
      "[0.64799338 1.37531455 0.84671181 1.06898697]\n"
     ]
    }
   ],
   "source": [
    "ar_iou = cl[:,0]/cl[:,1]\n",
    "\n",
    "print ar_iou\n",
    "\n",
    "\n",
    "scale_iou = cl[:,1]*np.sqrt(ar_iou)/256\n",
    "print scale_iou"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
